#include "delegate/Banner.h"
#include "delegate/PrintBanner.h"
#include <iostream>

using namespace DelegateModel;

Banner::Banner(char* m):mesg(m){}

void Banner::showWithAster()
{
    std::cout << "*" << mesg << "*" << std::endl;
}

void Banner::showWithParen()
{
    std::cout << "(" << mesg << ")" <<std::endl;
}

PrintBannerAdapter::PrintBannerAdapter(char* m)
{
    banner = new Banner(m);
}

void PrintBannerAdapter::printStrong()
{
    banner->showWithAster();
}

void PrintBannerAdapter::printWeak()
{
    banner->showWithParen();
}